// EndPort.cpp: implementation of the EndPort class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EndPort.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

namespace PDMS
{
	namespace PDMSDomain
	{
		class EndType
		{
		public:
			EndType( const StdString& strEndType ) 
			{
				m_strEndType = strEndType;
			}
			
			~EndType() {
			}

			const StdString& GetEndTypeInfo()
			{
				return m_strEndType;
			}
			
		private:
			StdString m_strEndType;
		};	
	}
}
/////////////////////////////////////////////////////////////////

using namespace PDMS;
using namespace PDMSDomain;
EndPort::EndPort( const UeGePoint3d& ptEndPosition,
				  const UeGeVector3d& vEndDirection,
				  const StdString& strEndtype )
{
	SetDirection( vEndDirection );
	SetPosition( ptEndPosition );
	SetEndType( strEndtype );
}

EndPort::~EndPort()
{
	if ( m_pEndType != NULL )
	{
		delete m_pEndType;
	}
}

void EndPort::SetDirection( const UeGeVector3d& vEndDirection )
{
	m_vDirection = vEndDirection;
}

void EndPort::SetPosition( const UeGePoint3d& ptEndPosition )
{
	m_ptPosition = ptEndPosition;
}

void EndPort::SetEndType( const StdString& strEndType )
{
	m_pEndType = new EndType( strEndType );
}

const UeGeVector3d& EndPort::GetDirection()
{
	return m_vDirection;
}

const UeGePoint3d& EndPort::GetPosition()
{
	return m_ptPosition;
}

BOOL EndPort::IsEndTypeMatchingWith( const EndPort& otherEndPort )
{
	return TRUE;
}